# -*- coding: utf-8 -*-
"""
Created on Wed Aug  9 20:50:29 2023

@author: skunk69
"""

import json

chinese_name = u'青少年学习倦怠量表'
english_name = 'Adolescent Learning Burnout Scale'
abbreviation = 'ALBS'
category = u'应激及相关行为量表'

outline = u"""学习倦怠(learning burnout)的概念是从工作倦怠(job burnout)引申而来，是一种发生于正常人身上的持续的、负性的、与学习相关的心理状态。这种状态表现为：精力耗损、情感耗竭；对与学习有关的活动的热忱逐渐消失、对学业持负面态度；个体在学业方面体会不到成就感或者没有效能感。
《青少年学习倦怠量表》由吴艳和戴晓阳于2007年编制，该量表以工作倦怠问卷为基础，可对青少年学习倦怠情况进行评估，涉及个体身心耗竭、对学业的态度以及学习低成就感几方面的情况。"""

instruction = u"""这是一份关于青少年学习倦怠的量表。请根据您自身与各个条目所描述情况相符合的程度在“非常符合”、“有点符合”、“不太确定”、“不太不符合”、“很不符合”中做出选择。答案无所谓好坏对错，请根据您的真实情况填写。"""

with open('ALBS.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for key,line in enumerate(lines):
    _,value = line.strip().split('）',maxsplit=1)
    items[key+1] = value.strip()

reverse_items = [1,4,7,14,15,16]
scales = [u'身心耗竭',u'学业疏离',u'低成就感']
scales_items = [
    [2,5,8,12],# 身心耗竭
    [3,6,9,10,13],# 学业疏离
    [1,4,7,11,14,15,16],# 低成就感
    ]

# check scales_items
print(f'scale length={[len(l) for l in scales_items]}')

check = []
for l in scales_items:
    check = check+l
print(f'len(check)={len(check)}')

# complementary set
check_set = {i for i in sorted(check)}^{i for i in range(1,17)}
print(f'complementary set= {check_set}')

factors = []
factors_scales = []
rating = [u'非常符合',u'有点符合',u'不太确定',u'不太符合',u'很不符合']
score_rules = list(range(5,0,-1))

contents = {
    'instruction':instruction,
    'items':items,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""《青少年学习倦怠量表》是一个自评量表，包括身心耗损、学业疏离和低成就感3个维度。"""

reliability = u"""采用初中生、高中生和大学生三个群体样本，三个维度和总分上的内部一致性信度系数在0.689~0.858。对初中群体的抽样样本，重测信度系数在0.606~0.732。"""
validity = u"""采用探索性因素分析对初中生进行结构分析，然后得到的学习倦怠三因素结构在高中生和大学生样本中进行验证。通过竞争模型的比较，证明三因素模型在这些样本中是理想的。量表各因子之间的相关系数在0.284~0.502，而各因子与总分之间的相关系数在0.685~0.833。
用Schaufeli等修改的Maslach倦怠量表-学生版（MBI-SS）作效标，总倦怠相关系数为0.847，各个维度的相关系数在0.55~0.79；学习倦怠各维度与SCL-90中躯体化、抑郁、焦虑之间的相关性都达到了显著水平。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""所有16个条目的得分之和即为该量表的总分，反映了被测者学习倦怠的总体状况。"""

applications = u"""无常模。实际应用效果尚待后续研究检验。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)